/*
 * @Description: student服务端
 * 
 * @Author: rendc
 * 
 * @Date: 2025-03-18 11:01:10
 * 
 * @LastEditors: rendc
 * 
 * @LastEditTime: 2025-03-18 11:38:51
 */

import java.io.InputStream;
import java.io.ObjectInputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.List;

@SuppressWarnings("unchecked")
// 如果确定要进行未经检查的转换，并且确保转换是安全的，那么可以使用这个注解 抑制编译器的警告

public class StudentServer {
  public static void main(String[] args) throws Exception {
    int port = 8888;
    // 搭建服务器 指定端口
    ServerSocket server = new ServerSocket(port);
    System.out.println("服务器：启动成功，等待客户端连接，端口" + port);
    // 接收客户端发来的学生信息
    Socket client = server.accept();
    System.out.println("服务器：客户端连接成功");
    // 获取IO流
    // 输入流
    InputStream is = client.getInputStream();
    // 增强流
    ObjectInputStream ois = new ObjectInputStream(is);
    // 接收客户端的数据
    List<Student> list = (List<Student>) ois.readObject();
    // 输出接收的学生数量
    System.out.println("服务器：已成功接收" + list.size() + "个学生对象。");
    // 遍历数组
    for (Student s : list) {
      // System.out.println(s);
    }
    // 关闭资源
    System.out.println("服务器：即将关闭。");
    ois.close();
    is.close();
    client.close();
    server.close();
  }
}